
# 案例4 ： 输出 9*9 乘法口诀表。
def mul():
    # 1. 定义两个数x,y
    for x in range(1,10):
        for y in range(1,x+1):
            print("{} * {} = {}".format(x,y,x *y),end=" ")
        print()

mul()

# 案例6 ：输入一个IP地址，判断是否输入正确，比如：12.12.23.34
def is_ip_address(ip):
    # 1. 将字符串分隔开，split('.')
    ip_list = ip.split('.')
    # 2. 对列表进行长度判断  : len(list)
    if len(ip_list) != 4:
        return "ip地址错误，请检查"
    for x in ip_list:
        # 3. 对列表中的每一个元素判断是否是整数 ： isdigit()
        if not x.isdigit():
            return "ip地址格式不符合要求，请检查"
        # 4. 范围判断
        if not 0<= int(x) <= 255:
            return "ip地址输入不正确，请检查"
    return "输入的ip地址是正确的！"

print(is_ip_address('12.12.23.34.23'))
print(is_ip_address('12.12.m.34'))
print(is_ip_address('12.12.256.34'))
print(is_ip_address('12.12.26.34'))

# 1.把原字典的键值对颠倒生成一个新的键值对， 例如： 将该字典；{'A':'a', 'B':'b', 'C':'c'}， 键值对颠倒生成一个新的字典
def reverse_dict(dct):
    new_dict = {}
    # 1. 判断传入的是否是字典，若不是直接返回错误 ：isinstance(数据类型，类型)
    if not isinstance(dct,dict):
        return "输入的数据类型不正确!"
    # 2. 循环字典 ，将每一个键值对重新赋值 ，items()
    for key,value in dct.items():
        new_dict[value] = key
    return new_dict

print("============================")
print(reverse_dict({'A':'a', 'B':'b', 'C':'c'}))


# 2. 字符串s = 'Life is short You need python'。统计这个字符串中每个单词的字母数量.
def statistics_word_nums():
    s = 'Life is short You need python'
    dct = {}
    # 1. 循环字符串，同时要把每个字符串按照空格分割开
    for x in s.split(" "):
        # 2. 统计每个单词的长度 ： len(word)
        dct[x] = len(x)
    # 3 。返回格式为字典
    return dct

print("=============")
print(statistics_word_nums())


# 编写程序，随机生成10以内的一个整数，如果该数字大于圆周率 π，就将其当做直径计算圆的周长和面积；否则当做半径计算圆的周长和面积。最后将计算结果输出。提示 ：randint()
import random
def circle_result():
    P = 3.14
    result = {'area':0.0,'girth':0.0}
    # 1. 生成随机数 ： randint(1,10)
    number = random.randint(1,10)
    print(number)
    # 2. 判断条件
    if number > P:
        r = number / 2
        area = P * r * r
        girth = 2 * P * r
        result['area'] = area
        result['girth'] = girth
        return result

    area = P * number * number
    girth = 2 * P * number
    result['area'] = area
    result['girth'] = girth
    return result


print("======")
print(circle_result())


# 创建一个数据集，包含1到10的随机整数，共计100个数。 并统计每个数字的次数。
def statistics_rand_nums():
    dict_num = {}
    # 1. 通过循环进行初始化
    for x in range(1,11):
        dict_num[str(x)] = 0
    print(dict_num)

    # 2. 循环100次 ，每次都生成一个随机数
    for x in range(1,101):
        number = random.randint(1,10)
        dict_num[str(number)] += 1      # ==> dict_num[str(number)] =  dict_num[str(number)] + 1
    return dict_num


print("============")
print(statistics_rand_nums())
